package com.bill.concurrency.example.publish;

import lombok.extern.slf4j.Slf4j;

/**
 * 对象的逸出
 * 内部类InnerClass的构造函数里 隐式的调用了EscapeObject的一个对象。
 * 如果此时这个隐式的对象还没有实例化好，则此处有可能会有一个引用的错误。
 */
@Slf4j
public class EscapeObject {
    private int thisCanBeEscape=0;

    public EscapeObject() {
        new InnerClass();
    }

    public class InnerClass{
        public InnerClass() {
            log.info("{}",EscapeObject.this.thisCanBeEscape);
        }
    }


    public static void main(String[] args) {
        new EscapeObject();
    }
}
